Scalarizing Fortran 90 Array Syntax

نویسندگان

  • Yuan Zhao
  • Ken Kennedy
چکیده

Array syntax, existed in many languages, adds expressive power by allowing operations on and assignments to the array sections. When compiling to a uniprocessor machine, the array statement must be converted into a loop that maintains the correct semantics, by a process called scalarization. Scalarization presents a significant technical problem because an array assignment needs to be implemented as if all inputs are fetched before any outputs are stored. Since a loop intermixes loads and stores, compiler often allocates an array to temporarily hold the result. Because these extra temporary arrays can cause performance problems in cache, many techniques have been developed to avoid their use or minimize their size. In this paper, we present two new strategies– loop alignment and loop skewing–to address this problem. Our experiments with loop alignment show that it is extremely effective in improving memory hierarchy performance of Fortran 90 array code on a scalar uniprocessor.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

ADAPTing Fortran 90 Array Programs for Distributed Memory Architectures

We describe a system that we are developing, whose purpose is to automatically transform data parallel Fortran 90 programs for execution on MIMD distributed memory architectures. The system is called ADAPT (for`Array Distribution Automatic Parallelisation Tool'). Programs for the system should make full use of the array features of Fortran 90, as parallelism is automatically extracted from the ...

متن کامل

Object-oriented Scientific Programming with Fortran 90

Fortran 90 is a modern language that introduces many important new features beneficial for scientific programming. While the array-syntax notation has received the most attention, we have found that many modern softaware development techniques can be supported by this language, including object-oriented concepts. While Fortran 90 is not a full object-oriented language it can directly support ma...

متن کامل

Co-Array Collectives: Refined Semantics for Co-Array Fortran

Co-array notation provides a compact syntax for programming parallel programs. Co-array Fortran (CAF) introduced and implements this notation, and CAF is currently proposed as an extension to the Fortran language standard. We believe that co-array notation requires a revised semantic definition beyond that specified by CAF for both pragmatic reasons within Fortran and to make the notation attra...

متن کامل

CHASM: Static Analysis and Automatic Code Generation for Improved Fortran 90 and C++ Interoperability

The relative simplicity and design of the Fortran 77 language allowed for reasonable interoperability with C and C++. Fortran 90, on the other hand, introduces several new and complex features to the language that severely degrade the ability of a mixed Fortran and C++ development environment. Major new items added to Fortran are userdefined types, pointers, and several new array features. Each...

متن کامل

Co-array Python: A Parallel Extension to the Python Language

A parallel extension to the Python language is introduced that is modeled after the Co-Array Fortran extensions to Fortran 95. A new Python module, CoArray, has been developed to provide co-array syntax that allows a Python programmer to address co-array data on a remote processor. An example of Jacobi iteration using the CoArray module is shown and corresponding performance results are presented.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001